#!/usr/bin/env python3
"""
图片素材准备工具
帮助用户快速截取所需的图片素材
"""

import os
import time
import pyautogui
from pathlib import Path


def create_images_folder():
    """创建images文件夹"""
    images_dir = Path("images")
    images_dir.mkdir(exist_ok=True)
    print(f"✅ 创建文件夹: {images_dir}")
    return images_dir


def capture_screenshot(name, description):
    """截取屏幕截图"""
    print(f"\n📸 准备截取: {name}")
    print(f"说明: {description}")
    print("3秒后开始截图...")
    
    for i in range(3, 0, -1):
        print(f"倒计时: {i}")
        time.sleep(1)
    
    print("开始截图，请将鼠标移动到目标区域...")
    time.sleep(2)
    
    # 截取屏幕
    screenshot = pyautogui.screenshot()
    filename = f"images/{name}.png"
    screenshot.save(filename)
    
    print(f"✅ 截图已保存: {filename}")
    return filename


def capture_region(name, description):
    """截取指定区域"""
    print(f"\n📸 准备截取区域: {name}")
    print(f"说明: {description}")
    print("请用鼠标拖拽选择要截取的区域...")
    
    # 等待用户准备
    input("准备好后按回车开始...")
    
    try:
        # 这里可以集成区域选择功能
        # 简化版本：让用户手动截图
        print("请手动截图并保存到 images 文件夹")
        print(f"文件名: {name}.png")
        input("完成后按回车继续...")
        
        filename = f"images/{name}.png"
        if os.path.exists(filename):
            print(f"✅ 文件已确认: {filename}")
            return filename
        else:
            print(f"❌ 文件未找到: {filename}")
            return None
            
    except Exception as e:
        print(f"❌ 截图失败: {e}")
        return None


def main():
    """主函数"""
    print("=== 微信小程序抢号程序 - 图片素材准备工具 ===")
    print("此工具将帮助您准备程序所需的图片素材")
    print()
    
    # 创建images文件夹
    images_dir = create_images_folder()
    
    # 准备图片素材
    images_to_capture = [
        {
            "name": "wechat_icon",
            "description": "微信窗口的图标部分（用于定位微信窗口）",
            "type": "region"
        },
        {
            "name": "grab_button", 
            "description": "抢号按钮的完整图像（包含按钮文字）",
            "type": "region"
        },
        {
            "name": "success",
            "description": "抢号成功时出现的提示或状态变化",
            "type": "region"
        }
    ]
    
    captured_files = []
    
    for img in images_to_capture:
        if img["type"] == "region":
            filename = capture_region(img["name"], img["description"])
        else:
            filename = capture_screenshot(img["name"], img["description"])
        
        if filename:
            captured_files.append(filename)
    
    # 生成配置文件
    print("\n📝 生成配置文件...")
    config_content = f"""# 微信小程序抢号程序配置文件 - 自动生成

# 目标小程序配置
target:
  # 微信图标模板（用于定位微信窗口）
  wechat_icon: "{captured_files[0] if len(captured_files) > 0 else 'images/wechat_icon.png'}"
  
  # 小程序配置
  mini_program:
    search_text: "目标小程序名称"  # 请修改为实际的小程序名称
    
  # 微信搜索框位置（需要手动调整）
  search_box_pos: [200, 100]  # [x, y] - 请根据实际情况调整
  
  # 抢号按钮配置
  grab_button:
    # 图像识别（推荐）
    image: "{captured_files[1] if len(captured_files) > 1 else 'images/grab_button.png'}"
    
    # 备选方案：固定坐标
    # position: [500, 300]  # [x, y] - 请根据实际情况调整
    
    # 备选方案：相对位置
    # relative: [300, 200]  # 相对于微信窗口的偏移量
  
  # 成功标识配置
  success_indicator:
    # 图像识别
    success_image: "{captured_files[2] if len(captured_files) > 2 else 'images/success.png'}"
    
    # 备选方案：颜色检查
    # color_check:
    #   position: [400, 250]  # 检查位置的坐标
    #   color: [255, 0, 0]    # 期望的颜色 (R, G, B)

# 自动化配置
automation:
  interval: 1.0      # 抢号间隔(秒)
  max_retries: 3     # 最大重试次数

# 日志配置
logging:
  level: "INFO"
  file: "grab.log"
"""
    
    with open("config.yaml", "w", encoding="utf-8") as f:
        f.write(config_content)
    
    print("✅ 配置文件已生成: config.yaml")
    
    # 使用说明
    print("\n📋 后续步骤:")
    print("1. 编辑 config.yaml 文件")
    print("2. 修改 'search_text' 为实际的小程序名称")
    print("3. 调整 'search_box_pos' 为微信搜索框的实际位置")
    print("4. 运行程序: python grabber.py")
    
    print("\n🎉 图片素材准备完成！")


if __name__ == "__main__":
    main() 